var fs = require("fs");

// 这个函数的callback中含有两个参数 一个是err 一个是所有文件夹名字的array
exports.getAllAlbums = function(callback){ // nodejs执行的时候会是异步 所以要回调
    fs.readdir("./uploads",function(err,files){ // 读取文件夹
        var allAlbums = [];
        if(err){
            callback("丑八怪没有找到uploads文件夹",null);
        }

        (function iterator(i){ // 迭代器
            if(i == files.length){   // 如果遍历到最后一个文件夹 遍历结束
                console.log(allAlbums);
                callback(null,allAlbums); // 回调传递值才会有值
                return;
            }   
            fs.stat("./uploads/" + files[i],function(err,stats){
                if(err){
                    callback("找不到文件" + files[i],null);
                }
                if(stats.isDirectory()){
                    allAlbums.push(files[i]);
                }
                iterator(i+1);
            });
        })(0);
      
    });
}

// 通过文件名 得到所有图片 
exports.getAllImageByAlbumName = function(albumName,callback){
    fs.readdir("./uploads/"+albumName,function(err,files){ // 读取文件夹
        if(err){
            callback("丑八怪没有找到uploads文件夹",null);
            return; // 记得return
        }
        var allImages = [];        
        (function iterator(i){ // 迭代器
            if(i == files.length){   // 如果遍历到最后一个文件夹 遍历结束
                console.log(allImages);
                callback(null,allImages); // 回调传递值才会有值
                return;
            }   
            fs.stat("./uploads/"+ albumName + "/" + files[i],function(err,stats){
                if(err){
                    callback("找不到文件" + files[i],null);
                    return;
                }
                if(stats.isFile()){ // 如果是个图片
                    allImages.push(files[i]);
                }
                iterator(i+1);
            });
        })(0);
      
    });
}